package error_code

import "servers/models/define"

const (
	ErrorCodeNoError               = iota        // 无错误
	ErrorCodeUnknown               = iota + 1000 // 未知错误
	ErrorCodeServiceBusy                         // 服务器繁忙(code)
	ErrorCodeProtocolFailed                      // 协议解析失败
	ErrorCodeProtocolDataNotVerify               // 协议数据未通过校验
	ErrorCodeBusinessIsExist                     // 商人已存在
	ErrorCodeBusinessIsNotExist                  // 商人不存在
	ErrorCodeAccountIsExist                      // 账号已存在
	ErrorCodeAccountIsNotExist                   // 账号不存在
	ErrorCodeBusinessHasRestricted               // 商人已受限
	ErrorCodeConfigNotMatch                      // 配置表不匹配
	ErrorCodeConnIsDisconnect                    // 连接已中断
	ErrorCodeEnterTheGameIsNotAuth               // 未开放当前游戏
	ErrorCodeConnIsNotAuth                       // 连接还未鉴权
	ErrorCodeConnServiceMatch                    // 连接服务未匹配
	ErrorCodeSessionExpired                      // 会话已过期
	ErrorCodeOtherTokenLogin                     // 已被其他用户登录
	ErrorCodeLoginStatus                         // 登陆状态错误
	ErrorCodeTokenExpired                        // Token已过期
	ErrorCodeLockScoreNotEnough                  // 锁定分数不足
	ErrorCodePlayerIsSitDown                     // 玩家已坐下
	ErrorCodePlayerIsNotSitDown                  // 玩家未坐下
	ErrorCodePlayerSitDownNotMatch               // 玩家位置信息不匹配
	ErrorCodeTableIsFull                         // 桌子已满
	ErrorCodePlayerInOtherGame                   // 玩家在其他游戏中
	ErrorCodePlayerInOtherTable                  // 玩家在其他桌子
	ErrorCodePlayerInOtherChair                  // 玩家在其他椅子
	ErrorCodePlayerIsGaming                      // 玩家正在游戏中
	ErrorCodePlayerScoreNotEnough                // 玩家分数不足
	ErrorCodePlayerIsNotPlaying                  // 玩家不在游戏中
	ErrorCodePlayerIsNotInTable                  // 玩家不在桌子上
	ErrorCodePlayerIsNotInChair                  // 玩家不在椅子上
	ErrorCodeGameStateNotNotMatch                // 游戏状态不匹配
	ErrorCodePlayerNoUseBank                     // 无缝钱包会员无法使用积分银行
	ErrorCodeEncryptFailed                       // 加解密失败
)

const (
	ErrorCodeJackpotBreakLine = 8000 + iota // 触底奖池
)

const (
	ErrorCodeServerNotOpen              = 9000 + iota // 服务器未开放
	ErrorCodeRequestLimit                             // 请求限流
	ErrorCodeRequestNotAuth                           // 请求无权限
	ErrorCodeRequestMissingOrWrongParam               // 请求参数缺少或错误 Missing or wrong request parameter
	// 代理验证错误 Agent validation error
	// 代理信息错误 Agent validation error
	// 签名错误 Signature error
	// IP 限制 IP restrictions
	// 设备限制 Equipment restrictions
	// 平台限制 Platform restrictions
	// 订单不存在 Order does not exist
	// 订单号重复 Repeat order number
	// 非法的时间格式 Illegal time format
	// 查询超过阈值 The query interval exceeds the limit
	// 用户触发风险控制 The user triggers risk control
)

var ErrorCodeMap = map[define.ErrorCode]string{
	ErrorCodeNoError:               "无错误",
	ErrorCodeUnknown:               "未知错误",
	ErrorCodeServiceBusy:           "服务器繁忙(code)",
	ErrorCodeProtocolFailed:        "协议解析失败",
	ErrorCodeProtocolDataNotVerify: "协议数据未通过校验",
	ErrorCodeBusinessIsExist:       "商人已存在",
	ErrorCodeBusinessIsNotExist:    "商人不存在",
	ErrorCodeAccountIsExist:        "账号已存在",
	ErrorCodeAccountIsNotExist:     "账号不存在",
	ErrorCodeBusinessHasRestricted: "商人已受限",
	ErrorCodeConfigNotMatch:        "配置表不匹配",
	ErrorCodeConnIsDisconnect:      "连接已中断",
	ErrorCodeEnterTheGameIsNotAuth: "未开放当前游戏",
	ErrorCodeConnIsNotAuth:         "连接还未鉴权",
	ErrorCodeConnServiceMatch:      "连接服务未匹配",
	ErrorCodeSessionExpired:        "会话已过期",
	ErrorCodeOtherTokenLogin:       "已被其他用户登录",
	ErrorCodeLoginStatus:           "登陆状态错误",
	ErrorCodeTokenExpired:          "Token已过期",
	ErrorCodeLockScoreNotEnough:    "锁定分数不足",
	ErrorCodePlayerIsSitDown:       "玩家已坐下",
	ErrorCodePlayerIsNotSitDown:    "玩家未坐下",
	ErrorCodePlayerSitDownNotMatch: "玩家位置信息不匹配",
	ErrorCodeTableIsFull:           "桌子已满",
	ErrorCodePlayerInOtherGame:     "玩家在其他游戏中",
	ErrorCodePlayerInOtherTable:    "玩家在其他桌子",
	ErrorCodePlayerInOtherChair:    "玩家在其他椅子",
	ErrorCodePlayerIsGaming:        "玩家正在游戏中",
	ErrorCodePlayerScoreNotEnough:  "玩家分数不足",
	ErrorCodePlayerIsNotPlaying:    "玩家不在游戏中",
	ErrorCodePlayerIsNotInTable:    "玩家不在桌子上",
	ErrorCodePlayerIsNotInChair:    "玩家不在椅子上",
	ErrorCodeGameStateNotNotMatch:  "游戏状态不匹配",
	ErrorCodePlayerNoUseBank:       "无缝钱包会员无法使用积分银行",
	ErrorCodeEncryptFailed:         "加解密失败",
}
